import { defineConfig, presetUno, presetAttributify, presetIcons, presetTypography, presetWebFonts, presetWind } from 'unocss'

export default defineConfig({
  // 预设配置
  presets: [
    // 基础预设，提供 Tailwind CSS 兼容的工具类
    presetUno(),
    // 属性化模式，允许使用属性形式编写样式
    presetAttributify(),
    // 图标预设，支持各种图标库
    // presetIcons({
    //   collections: {
    //     // 可以添加自定义图标集合
    //     carbon: () => import('@iconify-json/carbon/icons.json').then(i => i.default),
    //     mdi: () => import('@iconify-json/mdi/icons.json').then(i => i.default),
    //     // Element Plus 图标
    //     ep: () => import('@iconify-json/ep/icons.json').then(i => i.default),
    //   },
    //   extraProperties: {
    //     'display': 'inline-block',
    //     'vertical-align': 'middle',
    //   }
    // }),
    // 排版预设，提供丰富的排版工具类
    presetTypography(),
    // Web 字体预设
    // presetWebFonts({
    //   fonts: {
    //     // 可以配置自定义字体
    //     sans: ['Inter', 'system-ui', 'sans-serif'],
    //     mono: ['Fira Code', 'monospace'],
    //   }
    // }),
    // Wind 预设，提供更多实用工具类
    presetWind(),
  ],
  
  // 自定义规则
  rules: [
    // 可以添加自定义 CSS 规则
    ['text-shadow', { 'text-shadow': '0 2px 4px rgba(0,0,0,0.10)' }],
    ['text-shadow-lg', { 'text-shadow': '0 15px 35px rgba(0, 0, 0, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07)' }],
  ],
  
  // 快捷方式
  shortcuts: {
    // 定义常用的样式组合
    'btn': 'px-4 py-1 rounded inline-block bg-teal-600 text-white cursor-pointer hover:bg-teal-700 disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50',
    'btn-green': 'text-white bg-green-500 hover:bg-green-700',
    'btn-blue': 'text-white bg-blue-500 hover:bg-blue-700',
    'btn-red': 'text-white bg-red-500 hover:bg-red-700',
    'btn-gray': 'text-white bg-gray-500 hover:bg-gray-700',
    'input': 'px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500',
    'card': 'bg-white rounded-lg shadow-md p-6',
    'flex-center': 'flex items-center justify-center',
    'flex-between': 'flex items-center justify-between',
    'text-ellipsis': 'overflow-hidden whitespace-nowrap text-ellipsis',
  },
  
  // 主题配置
  theme: {
    colors: {
      // 可以扩展或覆盖默认颜色
      primary: {
        50: '#eff6ff',
        100: '#dbeafe',
        200: '#bfdbfe',
        300: '#93c5fd',
        400: '#60a5fa',
        500: '#3b82f6',
        600: '#2563eb',
        700: '#1d4ed8',
        800: '#1e40af',
        900: '#1e3a8a',
      }
    },
    fontFamily: {
      sans: ['Inter', 'system-ui', 'sans-serif'],
      mono: ['Fira Code', 'monospace'],
    }
  },
  
  // 安全列表 - 确保这些类名始终被包含
  safelist: [
    'i-ep-menu',
    'i-ep-close',
    'i-ep-arrow-left',
    'i-ep-arrow-right',
    'i-ep-arrow-up',
    'i-ep-arrow-down',
    'i-ep-plus',
    'i-ep-minus',
    'i-ep-edit',
    'i-ep-delete',
    'i-ep-view',
    'i-ep-search',
    'i-ep-refresh',
    'i-ep-download',
    'i-ep-upload',
    'i-ep-setting',
    'i-ep-user',
    'i-ep-lock',
    'i-ep-unlock',
  ],
  
  // 转换器配置
  transformers: [
    // 可以添加转换器来处理特殊语法
  ],
  
  // 提取器配置
  extractors: [
    // 可以添加自定义提取器
  ],
  
  // 配置选项
  configFile: false, // 禁用配置文件查找
  envMode: 'dev', // 环境模式
})
